package com.koron.order.LineHomepage.service;

import com.koron.order.LineHomepage.bean.VO.*;
import com.koron.order.LineHomepage.bean.dto.LineEquipmentDTO;
import com.koron.order.LineHomepage.bean.dto.LineKeyRiskDTO;
import com.koron.order.LineHomepage.bean.dto.LineRiskDTO;
import com.koron.order.LineHomepage.bean.query.DefectReportQuery;
import com.koron.order.LineHomepage.bean.query.LineEquipmentQuery;
import com.koron.order.LineHomepage.bean.query.RiskReportQuery;
import com.koron.order.overhaul.bean.dto.Equipment;
import com.koron.order.risk.base.bean.query.LineKeyRiskQuery;
import com.koron.order.risk.base.bean.query.LineRiskQuery;
import com.koron.order.risk.base.bean.vo.LineKeyRiskVO;
import com.koron.order.risk.base.bean.vo.LineRiskVO;
import org.koron.ebs.mybatis.SessionFactory;

import java.util.Date;
import java.util.List;



/**
 * @ClassName: HomePageService
 * @Description:
 * @Date: 2023/2/15
 * @Author: 李一辰
 * @Version: 1.0
 **/
public interface LineHomePageService {

    List<LineDefectVO> getDefectCount(SessionFactory sessionFactory);

    Integer getLineRiskCount(SessionFactory sessionFactory);

    Integer getUnvRiskCount(SessionFactory sessionFactory);

    Integer getRiskCount(SessionFactory sessionFactory);

    AnnualTripVO getLineTripAnnual(SessionFactory sessionFactory);

    AnnualTripVO getLineTripQuarter(SessionFactory sessionFactory);

    List<RiskReportVO> getRiskReportingAnalogy(SessionFactory sessionFactory, RiskReportQuery riskReportQuery);

    List<DefectReportVO> getDefectKeys(SessionFactory sessionFactory, DefectReportQuery defectReportQuery);

    DefectStatistic getDefectStatistic(SessionFactory sessionFactory, Date date);


    List<Equipment> list(SessionFactory sessionFactory, LineEquipmentQuery query);

    LineEquipmentDTO selectEquipmentDetail(SessionFactory sessionFactory, String id);


    List<LineRiskVO> listRisks(SessionFactory sessionFactory, LineRiskQuery lineRiskQuery);

    LineRiskDTO selectRiskDetail (SessionFactory sessionFactory,String id);

    List<LineKeyRiskVO> listKeyRisks(SessionFactory sessionFactory, LineKeyRiskQuery lineRiskQuery);

    LineKeyRiskDTO selectKeyRisks(SessionFactory sessionFactory, String id);
}
